package com.jiangyg.mall.member.service;

import com.jiangyg.mall.core.support.restful.Pagination;
import com.jiangyg.mall.member.dto.MemberDTO;
import com.jiangyg.mall.member.vo.MemberAuthzInfoVO;
import com.jiangyg.mall.member.vo.MemberVO;

import java.util.List;

/**
 * 类描述：会员
 *
 * @author jiangyg
 * @email email@jiangyg.com
 * @date 2021-10-18 22:00:56
 */
public interface MemberService {

    /**
     * 功能描述：会员分页查询
     *
     * @param pagination 分页参数
     * @return 返回分页信息
     */
    Pagination<MemberVO> selectPagination(Pagination<MemberVO> pagination) throws Exception;

    /**
     * 功能描述：注册会员
     *
     * @param dto 会员
     * @return 返回是否操作成功
     */
    boolean register(MemberDTO dto) throws Exception;

    /**
     * 功能描述：根据ID获取Member
     *
     * @param memberId 会员ID
     * @return 返回会员
     */
    MemberVO selectById(Long memberId) throws Exception;

    /**
     * 功能描述：批量删除Member
     *
     * @param memberIds 要删除的ID数组
     * @return 返回是否操作成功
     */
    boolean delete(List<Long> memberIds);

    /**
     * 功能描述：查询手机号是否已注册
     *
     * @param mobile 手机号
     * @return 结果
     */
    boolean mobileRegistered(String mobile);

    /**
     * 功能描述：根据账号（用户名、手机号）查询认证信息
     *
     * @param account 用户名
     * @return 结果
     */
    MemberAuthzInfoVO selectAuthzInfoByAccount(String account) throws Exception;

}

